Sélection de modèle pour de la classification de courbes

Ce projet avait pour objectif de faire la preuve de concept d'une solution pour classer efficacement, et à moindre coût, des courbes HRM (High Resolution Melt). Il s'est déroulé au sein d'un laboratoire de statistique sur le campus de la faculté de pharmacie de Montpellier, sous la direction scientifique de Chrystelle Reynes, et l'encadrement de la SattAxlR avec Laetitia Mahe.

Ces courbes sont obtenues en chauffant progressivement l'ADN, et en observant l'évolution de l'intensité de fluorescence : les caractéristiques de la courbe permettent d'identifier le moment où les brins d'ADN se séparent, ce qui permet d'identifier, ou du moins de classer, le matériel génétique observé.

Tâches & Objectifs

L'objectif était de produire un algorithme permettant efficacement de classer les échantillons ADN de 27 bactéries en utilisant leur fonction signature obtenue par HRM. Ces courbes, utilisées comme "signature" du matériel génétique observé, sont suffisamment précises pour que l'on puisse en détecter une variation, même mineure.

High resolution Melt curve

L'objectif du projet était donc de démontrer la capacité de ces courbes à caractériser les différents parasites du jeu de test, afin ensuite de permettre le passage à l'échelle industrielle.

Actions et Développement

Lors de la première phase de la démonstration de concept, les échantillons étaient classés avec la méthode statistique LDA. Bien qu'étant juste à 100%, cette méthode n'a été utilisée que sur des réplicats techniques, c'est-à-dire que chaque bactérie de catégorie distincte a été séquencée plusieurs fois, mais jamais deux fois pour la même catégorie. Il n'y avait donc pas de variabilité biologique.

Lors de la phase de pré-maturation, phase durant laquelle je suis intervenu, il fallait pouvoir répondre à cette problématique en considérant la variabilité biologique. Le jeu de données a donc été étoffé, et plusieurs bactéries appartenant au même groupe (pour la plupart des bactéries) ont été séquencées, avec plusieurs réplicats techniques pour chacune.

La discrimination via LDA ne fonctionnait plus du tout en considérant la variabilité biologique car cette méthode a comme hypothèse l'homoscédasticité des variables observées. Cette hypothèse est foncièrement violée dans notre cas, car nos variables sont fortement dépendantes, il s'agit des 195 points d'acquisition des courbes (c'est-à-dire 195 couples (x, y)) : si deux valeurs x sont proches, leurs valeurs respectives y le seront également.

Après une paire de mois de recherche, l'algorithme de machine learning random forest a résolu ce problème. Cet algorithme utilise plusieurs arbres de décision pour lesquels on perturbe à la fois le jeu d'apprentissage (technique d'échantillonnage), et les variables sur lesquelles on construit l'arbre (un paramètre "classique" est de ne retenir que $\sqrt{n}$ variables sélectionnées aléatoirement pour chaque arbre). La classification finale d'un individu par random forest est donc le résultat du vote majoritaire de la forêt (classiquement 500 arbres).

Random Forest Prediction

En particulier, cette méthode de classification basée sur l'échantillonnage permet de traiter des jeux de données ayant de fortes matrices de corrélation, et de grande dimension, ce qui est notre cas ici.

Résultats

En utilisant les méthodes de validation croisée, l'algorithme final avait entre 92% et 100% de réussites. L'aléatoire de ces valeurs dépendait à la fois de la méthode de validation, et de l'algorithme de random forest en lui-même : durant cette phase, on n'a pas sélectionné ou sauvegardé un modèle particulier, mais on cherchait plutôt à valider la méthode.

L'algorithme final complétait les données initiales avec les dérivées numériques (soit 194 points supplémentaires), ainsi que des points caractéristiques, comme le point de mi-fusion. Il procédait également à une phase récursive d'auto-test pour repérer des groupes qu'il n'arrivait pas à séparer de manière suffisamment fiable, et construisait un nouveau groupe agrégé. L'algorithme de classification était fini lorsque la classification était "stable", et comprenait des groupes joints.

Environ deux ans après la fin de ce contrat, j'ai reçu un appel de Laetitia Mahe pour me dire que l'algorithme avait passé la phase de maturation industrielle, c'est-à-dire qu'il avait fait ses preuves avec des jeux de données réels (industriels).

Stack technique

Le projet repose sur les outils et technologies suivants :

  • Langage de programmation : R
  • Package de machine learning : randomForest
  • Méthodes statistiques : LDA (Analyse Discriminante Linéaire), Validation croisée
  • Algorithme : Random Forest, Arbres de décision

Il est important de noter que cette stack technique était imposée par le contexte de recherche en statistique. Les défis techniques majeurs rencontrés incluent :

  • Gestion de la variabilité biologique dans les données HRM
  • Traitement de jeux de données avec de fortes matrices de corrélation
  • Développement d'un algorithme robuste pour la classification de courbes